跳到主要内容

实战-Docker方式安装Jenkins-2022.4.17-测试成功

Day2-实战:Docker方式安装Jenkins-2022.4.17(测试成功)

image-20220411203714499

目录

[toc]

实验环境

win10笔记本
1台虚机 centos7.9 vmworkstation
jenkins/jenkins:2.332.2-centos7-jdk8
docker 20.10.11

实验软件

链接:https://pan.baidu.com/s/1d4Y_oq_nysDR7Psl8syKZw?pwd=l6lo 提取码:l6lo 2022.4.16-实战2:docker方式安装jenkins-2022.4.16(测试成功)

image-20220416231345667

前置条件

  • docker环境已安装(本次版本:20.10.11)

1、Jenkins master节点安装

🍀 课件内容

image-20220411204412172

image-20220411204423279

image-20220411204432786

image-20220411204442666

🍀 自己配置过程如下:

0、安装jdk环境

⚠️ 我们测试环境,是在一台虚机上跑了一个jenkins容器。但后面添加一个jenkins agent时,是将这个虚机作为其agent使用,因此这个虚机也要安装java环境的!!!

不管你是jenkins master节点,还是agent节点,都是需要jdk环境的!

(1)下载jdk软件
[root@devops ~]#wget https://mirrors.tuna.tsinghua.edu.cn/AdoptOpenJDK/8/jdk/x64/linux/OpenJDK8U-jdk_x64_linux_hotspot_8u322b06.tar.gz --no-check-certificate

image-20220414185032534

image-20220414185225338

(2)配置jdk环境
[root@devops ~]#tar zxf OpenJDK8U-jdk_x64_linux_hotspot_8u322b06.tar.gz -C /usr/local/
[root@devops ~]#cd /usr/local/jdk8u322-b06/
[root@devops jdk8u322-b06]#pwd
/usr/local/jdk8u322-b06
[root@devops jdk8u322-b06]#vim /etc/profile
export JAVA_HOME=/usr/local/jdk8u322-b06
export PATH=$JAVA_HOME/bin:$PATH
[root@devops jdk8u322-b06]#source /etc/profile

(3)验证
[root@devops jdk8u322-b06]#java -version
openjdk version "1.8.0_322"
OpenJDK Runtime Environment (Temurin)(build 1.8.0_322-b06)
OpenJDK 64-Bit Server VM (Temurin)(build 25.322-b06, mixed mode)

1、docker拉取jenkins镜像并启动容器

🍀 下载jenkins镜像

去dockerhub官方网站去下载jenkins镜像

在dockerhub里搜索jenkins/jenkins,点击tag,搜索jdk8,然后选择2.332.2-centos7-jdk8即可:

https://hub.docker.com/

image-20220411211033562

image-20220411211301713

docker pull jenkins/jenkins:2.332.2-centos7-jdk8

🍀 完整安装过程如下:

#先在本地宿主机创建/data/cicd/jenkins目录并赋予权限
mkdir -p /data/cicd/jenkins
chmod +x /data/cicd/jenkins

(1)拉取镜像
[root@devops harbor]#docker pull jenkins/jenkins:2.332.2-centos7-jdk8

(2)创建jenkins工作目录
[root@devops harbor]#mkdir -p /data/cicd/jenkins
[root@devops harbor]#chmod 777 -R /data/cicd/jenkins

(3)启动jenkins
docker run -itd --name jenkins --restart=always \
-p 8080:8080 \
-p 50000:50000 \
--privileged=true \
-e JAVA_OPTS="-Dorg.apache.commons.jelly.tags.fmt.timeZone='Asia/Shanghai" \
-v /data/cicd/jenkins:/var/jenkins_home jenkins/jenkins:2.332.2-centos7-jdk8

#说明:
8080 Jenkins web端访问端口
50000 Jenkins与Agent建立连接所需要的端口
JAVA_OPTS环境变量为修改时间配置,否则可能jenkins的时间显示有问题!

(4)验证
#查看jenkins容器运行状态
[root@devops ~]#docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS
NAMES
dc6fa067248a jenkins/jenkins:2.332.2-centos7-jdk8 "/sbin/tini -- /usr/…" 48 seconds ago Up 47 seconds 0.0.0.0:8080->8080/tcp, :::8080->8080/tcp, 0.0.0.0:50000->50000/tcp, :::50000->50000/tcp jenkins

#查看jenkins容器log
[root@devops ~]#docker logs jenkins

image-20220412194828867

image-20220412194819984

2、访问web界面并输入密码

http://172.29.9.101:8080/

image-20220412200907398

🍀 可通过如下2种方式来获取密码:

(1)查看docker里的日志文件
[root@devops ~]#docker exec jenkins cat /var/jenkins_home/secrets/initialAdminPassword
cb910c09e8964c459ba6dcc7eff4f4cd

(2)查看jenkins容器日志
[root@devops ~]#docker logs jenkins
Jenkins initial setup is required. An admin user has been created and a password generated.
Please use the following password to proceed to installation:

cb910c09e8964c459ba6dcc7eff4f4cd

This may also be found at: /var/jenkins_home/secrets/initialAdminPassword

输入密码后,这边的加载一会儿,耐心等一会儿:

image-20220414161955864

image-20220414162029581

加载完成后,出现如下界面:

image-20220414162050826

3、自定义安装插件

点击选择插件来安装

image-20220414162245963

先点击全部,再点击,我们来自定义安装一些插件:

image-20220414162334182

我们装一个jenkins中文社区的插件本地化插件就好了:(后面我们课程用到哪些插件再去安装就可以了)选好后,点击安装

image-20220414162615268

image-20220414162701127

插件安装完成后,出现如下界面:

image-20220414162714531

4、创建一个管理员用户

账户:admin 密码:admin ,输入完成后,点击保存并完成

image-20220414162852614

点击保存并完成

image-20220414162950446

点击开始使用jenkins

image-20220414163030864

这里就进入到了jenkins的主界面:

image-20220414163055739

5、配置插件源

🍀 jenkins官方中文社区源当时测试在这个jenkins版本下用不了!

按老师提供的这个方法,貌似这个源地址对这个版本的jenkins是失效了:。。。(老师也是没测试出来。。。,最后直接更换清华源了!)

image-20220411204501950

image-20220414164509887

image-20220414164532649

image-20220414164454098

image-20220414164437545

image-20220414164803805

🍀 因此这里进行更换清华源:

输入清华源链接地址https://mirrors.tuna.tsinghua.edu.cn/

image-20220414165110791

点击updates

image-20220414165147663

看下自己当前jenkins版本:Jenkins 2.332.2)

image-20220414165332771

这里没有Jenkins 2.332.2,用相近的版本也行:

image-20220414165423917

点击update-center.json,然后复制其链接地址即可:

https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/dynamic-stable-2.332.1/update-center.json

image-20220414165505933

🍀 得到清清华源地址后,我们再次按上面方式进行配置

https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/dynamic-stable-2.332.1/update-center.json

image-20220414165713879

验证,点击立即获取

image-20220414165746977

可以看到,这个源地址是可以用的:

image-20220414165803264

以上,jenkins master节点就配置成功了,接下来配置下jenkins agent节点!

2、Jenkins agent节点安装

agent就是真正去执行任务的节点。

image-20220414170214550

1、新建节点,并填写参数配置

🍀 课件内容

image-20220414170237326

image-20220414170254014

🍀 自己具体配置过程

点击系统设置-节点管理

image-20220414181258348

点击新建节点

image-20220414181326669

填写节点名称,Type选择固定节点,点击Create

image-20220414181413933

配置执行器数量远程工作目录标签内容,其余不变,填写完成后,点击保存:

image-20220415220011821

image-20220414182433149

⚠️ Number of executors

你可以这样理解,我在jenkins上运行一个job,它就会占用一个执行器。它所运行作业的数量,作业的并发数。 所以你在调并发的时候,如果出现队列在排队的情况,那可能是因为这里的执行器数量设置不够!

另外:如果这里配置了自定义工作目录的话,那么这里的值就会替代上面我们指定的远程工作目录

image-20220414182033398

2、获取agent启动程序并运行agent

🍀 课件内容

image-20220414170312222

image-20220414170329831

🍀 自己配置过程:

在首页点击刚才新建的节点build01

image-20220414183524925

这里agent有2种方式可以连接到jenkins master,我们使用第二种方式:

image-20220414183658380

右键复制agent.jar包,在我们的虚机里将其下载下来:

image-20220414183750325

创建agent目录并下载agent.jar包:

[root@devops ~]#mkdir -p /data/cicd/jenkins/jenkinsagent
[root@devops ~]#cd /data/cicd/jenkins/jenkinsagent
[root@devops jenkinsagent]#wget http://172.29.9.101:8080/jnlpJars/agent.jar
--2022-04-14 18:40:15-- http://172.29.9.101:8080/jnlpJars/agent.jar
Connecting to 172.29.9.101:8080... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1524115 (1.5M) [application/java-archive]
Saving to: ‘agent.jar’

100%[=====================================================================================================================================>] 1,524,115 --.-K/s in 0.07s

2022-04-14 18:40:15 (22.2 MB/s) - ‘agent.jar’ saved [1524115/1524115]

[root@devops jenkinsagent]#ll -h agent.jar
-rw-r--r-- 1 root root 1.5M Apr 14 16:09 agent.jar

编写启动脚本:

[root@devops jenkinsagent]#pwd
/data/cicd/jenkins/jenkinsagent
[root@devops jenkinsagent]#vim start.sh #将刚才网页出现的第二种方式的代码拷贝进去
#!/bin/bash
echo a6e5abcbbab18dd68f6a76cbab162507201d465bc64aefdc4f7240befe8b311b > secret-file
java -jar agent.jar -jnlpUrl http://172.29.9.101:8080/computer/build01/jenkins-agent.jnlp -secret @secret-file -workDir "/opt/jenkins"

启动脚本并查看:

[root@devops jdk8u322-b06]#cd /data/cicd/jenkins/jenkinsagent/
[root@devops jenkinsagent]#ls
agent.jar secret-file start.sh
[root@devops jenkinsagent]#sh start.sh

image-20220414185914532

此时刷新下web页面,我么可以看到bulid01 agent节点状态正常了:

image-20220414190013092

🍀 但是,现在有个问题,当我们把这个脚本退出后,这个agent程序就退出了:

image-20220414190108471

image-20220414190125794

此时,该怎么办呢?可以在启动脚本里修改下配置,使其脚本在后台运行:😘

#改进脚本
[root@devops jenkinsagent]#pwd
/data/cicd/jenkins/jenkinsagent
[root@devops jenkinsagent]#vim start.sh
#!/bin/bash
echo a6e5abcbbab18dd68f6a76cbab162507201d465bc64aefdc4f7240befe8b311b > secret-file
nohup java -jar agent.jar -jnlpUrl http://172.29.9.101:8080/computer/build01/jenkins-agent.jnlp -secret @secret-file -workDir "/opt/jenkins" >/dev/null &

#我们再次启动脚本,然后刷新网页观察现象
[root@devops jenkinsagent]#sh start.sh
[root@devops jenkinsagent]#nohup: redirecting stderr to stdout

[root@devops jenkinsagent]#
[root@devops jenkinsagent]#ps -aux|grep java
1000 83669 1.6 24.0 3016260 447312 pts/0 Sl+ 16:41 2:26 java -Duser.home=/var/jenkins_home -Djenkins.model.Jenkins.slaveAgentPort=50000 -jar /usr/share/jenkins/jenkins.war
root 94013 14.8 6.4 3036264 120800 pts/2 Sl 19:04 0:08 java -jar agent.jar -jnlpUrl http://172.29.9.101:8080/computer/build01/jenkins-agent.jnlp -secret @secret-file -workDir /opt/jenkins
root 94183 0.0 0.0 112708 972 pts/2 S+ 19:05 0:00 grep --color=auto java

image-20220416095814729

image-20220414190655895

  • 设置脚本开机启动:
[root@devops ~]#chmod +x /etc/rc.d/rc.local
[root@devops ~]#chmod +x /data/cicd/jenkins/jenkinsagent/start.sh
[root@devops ~]#vim /etc/rc.d/rc.local

3、自定义agent通信端口

⚠️ 注意:这里默认使用50000端口即可!尽量使用指定端口,如果使用随机端口的话,后续区域网络申请放行网络权限时,不好做!

image-20220414170348560

🍀 配置地方如下(保持默认即可):系统管理-安全/全局安全设置

image-20220414191124040

image-20220414191216232

至此,jenkins master节点和agent节点已全部安装成功!😘

关于我

我的博客主旨:

  • 排版美观,语言精炼;
  • 文档即手册,步骤明细,拒绝埋坑,提供源码;
  • 本人实战文档都是亲测成功的,各位小伙伴在实际操作过程中如有什么疑问,可随时联系本人帮您解决问题,让我们一起进步!

🍀 微信二维码 x2675263825 (舍得), qq:2675263825。

image-20230107215114763

🍀 微信公众号 《云原生架构师实战》

image-20230107215126971

🍀 语雀

https://www.yuque.com/xyy-onlyone

image-20230306221144511

🍀 csdn https://blog.csdn.net/weixin_39246554?spm=1010.2135.3001.5421

image-20230107215149885

🍀 知乎 https://www.zhihu.com/people/foryouone

image-20230107215203185

最后

好了,关于本次就到这里了,感谢大家阅读,最后祝大家生活快乐,每天都过的有意义哦,我们下期见!

image-20230107215844356